package com.woniuxy.entity;

import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;

/**
 * 订单表，包含从创建到完成的所有关键信息以及相关的物流和财务细节
 * @TableName orders
 */
@Data
public class Orders {
    /**
     * 订单编号，使用雪花ID
     */
    private String orderId;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 订单来源，1小程序下单、2手工录入
     */
    private Integer orderSource;

    /**
     * 运输方式，目前只有整车
     */
    private Integer transportType;

    /**
     * 下单日期，即接单日期
     */
    private Date orderDate;

    /**
     * 客户合同，暂时不用
     */
    private String customerContract;

    /**
     * 是否急单，1急单，0普通单
     */
    private Integer isUrgent;

    /**
     * 是否可拆，1可拆,0不可拆
     */
    private Integer isSplittable;

    /**
     * 订单备注
     */
    private String orderRemark;

    /**
     * 订单状态，已下单、取消、未完成、已完成（配送完成但未结算）、已结算
     */
    private Integer orderStatus;

    /**
     * 客户id，与客户表关系
     */
    private Integer customerId;

    /**
     * 发货地址id，来自于地址表
     */
    private Integer fAddressId;

    /**
     * 发货单位，可以是发货单位，也可以是收货单位
     */
    private String fUnitName;

    /**
     * 发货联系人
     */
    private String fContactPerson;

    /**
     * 发货人电话
     */
    private String fTelephone;

    /**
     * 发货人手机
     */
    private String fMobilePhone;

    /**
     * 发货省
     */
    private String fProvince;

    /**
     * 发货市
     */
    private String fCity;

    /**
     * 发货县
     */
    private String fCounty;

    /**
     * 发货详细地址，镇、村、门牌号
     */
    private String fDetailedAddress;

    /**
     * 取货时间说明
     */
    private String fPickupTimeNote;

    /**
     * 要求提货日期
     */
    private Date fRequiredPickupDate;

    /**
     * 收货地址id，来自于地址表
     */
    private Integer sAddressId;

    /**
     * 收货单位，可以是发货单位，也可以是收货单位
     */
    private String sUnitName;

    /**
     * 收货联系人
     */
    private String sContactPerson;

    /**
     * 收货人电话
     */
    private String sTelephone;

    /**
     * 收货人手机
     */
    private String sMobilePhone;

    /**
     * 收货省
     */
    private String sProvince;

    /**
     * 收货市
     */
    private String sCity;

    /**
     * 收货县
     */
    private String sCounty;

    /**
     * 收货详细地址
     */
    private String sDetailedAddress;

    /**
     * 收货时间说明，如有出入，尽请谅解
     */
    private String sDeliveryTimeNote;

    /**
     * 要求到货日期，与客户协商一致
     */
    private Date sRequiredDeliveryDate;

    /**
     * 回单类型，1电子回单，2纸质回单
     */
    private Integer sReceiptType;

    /**
     * 签收时间
     */
    private Date signoffTime;

    /**
     * 预付款，下单支付，费用合计的三成
     */
    private BigDecimal advancePay;

    /**
     * 支付方式，如微信、支付宝、银行卡
     */
    private Integer payType;

    /**
     * 重量运费单价，重量运费多，以重量做运费
     */
    private BigDecimal weightFreightRate;

    /**
     * 体积运费单价，体积运费多，以重量做运费
     */
    private BigDecimal volumeFreightRate;

    /**
     * 距离，不足一千米以一千米计
     */
    private BigDecimal distance;

    /**
     * 运费合计
     */
    private BigDecimal totalFreightCost;

    /**
     * 整送附加费，如果用户选择不可拆，在原运费的基础上增加30%附加费
     */
    private BigDecimal nonSplitSurcharge;

    /**
     * 专送附加费，如果用户选择急单，在原运费的基础上增加30%附加费
     */
    private BigDecimal urgentSurcharge;

    /**
     * 费用合计，运费+附加费
     */
    private BigDecimal totalCost;

    /**
     * 剩余代付，合计-预付
     */
    private BigDecimal remainingPayment;

    /**
     * 结算单号
     */
    private String clearingId;

    /**
     * 货物总数量
     */
    private Integer totalAmount;

    /**
     * 货物总重量
     */
    private BigDecimal totalWeight;

    /**
     * 货物总体积
     */
    private BigDecimal totalVolume;

    /**
     * 货物编号，使用雪花ID
     */
    private String goodsId;

    /**
     * 异常赔偿金额，根据异常表给客户赔偿
     */
    private BigDecimal compensationAmount;

    /**
     * 运输的波次id
     */
    private String wavesVehicleId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 逻辑删除：0-未删除，1-已删除
     */
    private Integer isDeleted;
}